home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 52
/
Aminet 52 (2002)(GTI - Schatztruhe)[!][Dec 2002].iso
/
Aminet
/
game
/
think
/
AmiChess.lha
/
AmiChess
/
src
/
hash.c
< prev
next >
Wrap
C/C++ Source or Header
|
2002-10-31
|
670b
|
30 lines
#include "common.h"
void CalcHashKey()
{
short sq,piece,color;
BitBoard b;
PawnHashKey=HashKey=(HashType)0;
for(color=white;color<=black;color++)
{
for(piece=pawn;piece<=king;piece++)
{
b=board.b[color][piece];
while(b)
{
sq=leadz(b);
CLEARBIT(b,sq);
HashKey^=hashcode[color][piece][sq];
if(piece==pawn) PawnHashKey^=hashcode[color][piece][sq];
}
}
}
if(board.ep>-1) HashKey^=ephash[board.ep];
if(board.flag&WKINGCASTLE) HashKey^=WKCastlehash;
if(board.flag&WQUEENCASTLE) HashKey^=WQCastlehash;
if(board.flag&BKINGCASTLE) HashKey^=BKCastlehash;
if(board.flag&BQUEENCASTLE) HashKey^=BQCastlehash;
if(board.side==black) HashKey^=Sidehash;
}